package com.example.strategy.core;

import com.example.strategy.constant.MsgResult;

/*
 * 策略模式
 */
public abstract class ModelTemplates {
    //支付类型
    public abstract String getName();
    
    //查询余额
    protected abstract double queryBalance(String uid);
    
    //扣款支付
    public MsgResult pay(String uid, double amount) {
        if(queryBalance(uid) < amount){
            return new MsgResult(500,"支付失败","余额不足");
        }
        return new MsgResult(200,"支付成功","支付金额：" + amount);
    }
	
}
